package team.kirohuji.dao;

import java.util.List;
import java.util.Map;

import team.kirohuji.domain.SystemUser;

/**
 * 系统用户类用来管理系统用户
 * 
 * @author kirohuji
 *
 */
public interface SystemUserDao extends BaseDao<SystemUser> {

	/**
	 * 通过userId查询该用户的所有权限
	 * 
	 * @param userId
	 *            用户主键
	 * @return String列表
	 */
	List<String> queryAllPerms(Integer userId);

	/**
	 * 通过userId查询该用户所拥有的所有菜单主键
	 * 
	 * @param userId
	 *            用户主键
	 * @return Integer列表
	 */
	List<Integer> queryAllMenuId(Integer userId);

	/**
	 * 根据用户名字获取系统用户
	 * 
	 * @param username
	 *            用户名
	 * @return SystemUser
	 */
	SystemUser queryByLoginName(String username);

	/**
	 * 修改密码
	 * 
	 * @param map
	 *            封装了对象userId:用户 IDpassword:原密码 newPassword:新密码
	 * @return int
	 */
	int updatePassword(Map<String, Object> map);

	/**
	 * 查询所有管理员
	 * 
	 * @return SystemUser列表
	 */
	List<SystemUser> queryAllUser();

	/**
	 * 查询用户通过登录名和用户名字
	 * 
	 * @param loginName
	 *            登录名
	 * @return SystemUser
	 */
	SystemUser queryUserByloginNameAnduserName(String loginName);

}